package cn.jinzhu.openfeign.service;

import cn.jinzhu.IUserService;
import cn.jinzhu.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
//openfeign和hystrix服务降级一起使用  fallback = HelloServiceFallback.class  继承了该service。也就是报错了进入HelloServiceFallback里面对应的方法
//@FeignClient(value = "provider",fallback = HelloServiceFallback.class) //注入openfegin,与服务注册中心的provider提供者绑定，为了获取他的数据
@FeignClient(value = "provider",fallbackFactory = HelloServiceFallBackFactory.class) //注入openfegin,与服务注册中心的provider提供者绑定，为了获取他的数据
public interface HelloService  extends IUserService {//继承自公共接口
//    //参数传递
//    @GetMapping("/hello")//provider里面的接口名称
//    String hello(); //返回类型要与provider一致
//
//
//    @GetMapping("/hello1")
//    String hello1(@RequestParam("name")  String name);//键值必须指定参数RequestParam，否则远程调用参数无效
//
//    @PostMapping("/add2")
//    public User hello3(@RequestBody User user);//如果是传json远程调用直接RequestBody，如果是键值对就跟上面那个一样指定参数RequestParam
//
//    @DeleteMapping("/delete1/{id}")
//    public String delete1(@PathVariable("id") Integer id );//如果是 PathVariable 里面也要指定参数，不能直接PathVariable
//
//    @GetMapping("/user1")
//    public String GetUserByName(@RequestHeader("name") String name);//带了header要转码utf-8,主要也要指定名字

}
